Mobility management of OSI connections between cell towers

ABSTRACT

A processor-implemented method, apparatus, and/or computer program product move Open Systems Interconnection (OSI) layer 4 connections between wirelessly-connected user equipment to a series of cell-towers, wherein an OSI layer 4 connection is extracted out of the underlying cellular protocols at the series of cell-towers. A detection is made that user equipment, which has a broken-out layer 4 connection, has moved from a first cell-tower to a second cell-tower. Traffic for an existing layer 4 connection from the user equipment is tunnelled between the first cell-tower and the second cell-tower. A predetermined trigger event is identified. In response to the predetermined trigger event occurring, an ongoing bidirectional flow of data packets is migrated from the user equipment over to layer 4 connections maintained at the second cell-tower.

BACKGROUND

The present invention relates generally to the field of data streamdelivery over wireless communication networks, and in particular,although not exclusively, to a scheme for providing mobility managementfor an optimization system for data traffic (mobile internet) in amobile phone network.

Audio and video are two examples of suitable data streams, although thepresent invention is applicable to any protocol. By way of(non-limiting) example, the present invention may be utilized in theloading of a Web page using Hypertext Transfer Protocol (HTTP) or filetransfers such as the download of software updates to a laptop devicerunning a Windows-based operating system.

SUMMARY

A processor-implemented method, apparatus, and/or computer programproduct move Open Systems Interconnection (OSI) layer 4 connectionsbetween wirelessly-connected user equipment to a series of cell-towersin applications, wherein an OSI layer 4 connection is extracted out ofthe underlying cellular protocols at the series of cell-towers. Adetection is made that user equipment, which has a broken-out layer 4connection, has moved from a first cell-tower to a second cell-tower.Traffic for an existing layer 4 connection from the user equipment istunnelled between the first cell-tower and the second cell-tower. Apredetermined trigger event is identified. In response to thepredetermined event occurring, an ongoing bidirectional flow of datapackets is migrated from the user equipment over to layer 4 connectionsmaintained at the second cell-tower.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically represents layer 4 (specifically TCP) connectionsin an MIOP architecture;

FIGS. 2-5 schematically represent sequential stages in the ongoinghandover of messages from an originator to a destination; and

FIG. 6 schematically represents the components of a personal dataprocessing machine embodying the present invention.

DETAILED DESCRIPTION

Considering initially the architecture of a 3rd Generation (3G) MobilePhone Network, following UMTS (the Unified Mobile Telephony System), theUMTS architecture is standardised by the 3rd Generation PartnershipProject (3GPP) and comprises a number of discrete interconnectedentities as represented in FIG. 1 of the accompanying drawings. At theuser level, a wireless device (such as a Cellphone, 3G dongle for alaptop, tablet device etc.) is known in 3GPP terminology as a UserEquipment (UE 20). It connects wirelessly to the cell tower which islabelled BS (Base Station) and is also known as a NodeB 19 in 3GPPterminology: in a typical arrangement, around 100 cell towers (NodeBs)may be connected over microwave or optical fibre links to a RadioNetwork Controller (RNC) 13 which is connected via a core network 17arrangement to the Internet. The core network 17 includes at least oneserving GPRS support node (SGSN) which supports several RNCs. The SGSNis connected to a gateway GPRS support node (GGSN). Finally the GGSN isconnected back to the operator service network OSN (also termed the “Gi”reference point in the 3GPP terminology) which connects to the internetat a Peering Point.

The messaging protocols between the entities from the UE 20 back (viabackhaul 23, as shown in FIG. 2) to the GGSN are various 3GPP specificprotocols over which the IP traffic from the UE 20 is tunneled. Betweenthe GGSN, OSN and internet, standard Internet Protocol (IP) is used.

In order to understand the invention it will be useful first to considerthe optimization system to which it relates. The density of mobilecomputing platforms is increasing at an exponential rate. Mobilecomputing platforms include traditional platforms such as phones,tablets and mobile broadband enabled laptops but increasingly alsomobile data enabled devices such as GPS systems, cars, and even mobilemedical equipment. Each of these may be considered a User Equipment (UE)20 in the arrangement of FIG. 1. This exponential increase in densitybrings significant new challenges for Mobile Network Operators (MNOs) asdata becomes the majority of the content they deliver.

One technique to address these challenges is to separate or ‘break out’the data traffic from the mobile phone protocols and optimize it.Several companies now market devices designed to break data traffic outof the network. Each of these devices breaks traffic out of the 3GPPprotocols at the RNC. Similar technology is emerging to break out the IPtraffic at the cell tower.

Once the IP traffic has been broken out of the network, it is possibleto put an optimization platform at the edge of the mobile phone network,either at the RNC 13 or in the cell tower (NodeB 19). This platform canhost various optimizations and other applications. As an example, oneoptimization that can be run at the cell tower or the RNC 13 is a webcache. Specifically, this cache is a transparent forward proxy with acache. Such caches are well known and have a range of uses in cachingand filtering applications.

In order to understand the invention it will additionally be useful toconsider how Mobility Management works in UMTS. A key process in thesupport of Mobility Management is the use of tunnelling protocolswherein a delivery protocol encapsulates a separate (payload) protocolto provide a secured path through a network. In the UMTS system, this isimplemented by the making of a tunnel from the GGSN to the userequipment (UE). Designers of such systems will usually include NetworkAddress Translation (NAT)—along with mechanisms to support the same—intheir design such that multiple UEs will share the same internet-facingIP address. The utilization of NAT will be described in greater detailbelow: operational means or apparatus stages for implementing NAT arerepresented in the accompanying drawings by a diamond shape, includingNAT means 10 and 12 shown in FIG. 1.

As the UE 20 begins to move from one cell to the next, accessingsuccessive NodeBs, the RNC (Radio Network Controller) 13 and GSNs(serving and gateway GPRS Support Nodes) within the core network 17 worktogether to move the tunnel as the UE 20 moves from one cell tower toanother. A key point to recognise is that the UMTS system maintains theintegrity of the tunnel across the mobility event. Referring to the OpenSystems Interconnection (OSI) model of computer networking, in thetransport layer (Layer 4) protocols, the Layer 4 protocols flowingthrough the tunnel are not affected. It is possible that one or more IPpackets may be dropped during the mobility event but Layer4 protocolssuch as TCP can operate over lossy links and such packet drop can beeasily recovered. As the UE 20 continues to move, into an area served bya new RNC, the tunnel is handed off seamlessly from one RNC to another.

As will be readily understood, referring to the OSI model, IP is a Layer3 protocol over which the known transport control protocol (TCP) flowsat Layer 4. Other known Layer 4 protocols include UDP and SCTP and theinvention is equally applicable to them.

Considering now Mobile Internet Optimization Platforms (abbreviatedherein and in the drawings to MIOP), where referencing an MIOP in a celltower it will be referred to below as an MIOP@NodeB (Node B MIOP 11) andwhere referencing an MIOP at an RNC 13 it will be referred to below asan MIOP@RNC (RNC MIOP 15). The arrangement of Layer 4 connections(especially TCP connections) in an MIOP architecture is illustrated inFIG. 1 of the accompanying drawings.

The MIOP appliances may have a range of optimizations in them. For thepurposes of illustrating the present invention, the applicants willconcentrate on just two optimizations, those of an HTTP Proxy Cache anda Byte cache. Considering the Layer 4 connections in a system employinga Forward Proxy 14 in a cell tower BS it can be seen that unproxiedtraffic, illustrated as case C.1 in FIG. 1, passes straight through thesystem whereas proxied connections are terminated in the cell tower.This is case C.2 in the Figure and, for the purposes of illustration, itwill be considered that only traffic for HTTP port 80 is proxied.

Layer 4 connections for all server ports other than HTTP port 80 are notproxied. The Layer 4 connections are not proxied but it will be assumedthat they are subject to Byte Caching between the NodeB 19 and RNC 13.

Considering how these connections flow through the network it will berecognized that, for broken out traffic, they bypass the UMTS mobilityenabled channels, using an overlay network to connect back to the Gi orOperator Service Network.

Routing of packets between the MIOP@NodeB and the Gi occurs using thesystem of Network Address Translation (NAT) referenced above. At thecell tower, the IP address of the UE 20 is translated into a private IPaddress that is in a NAT pool belonging to this MIOP@NodeB. Theaddresses in this NAT pool are routed to this MIOP@NodeB in thisparticular cell tower. When the UE 20 moves to the cell tower served byanother NodeB 2 (as shown in FIG. 3), it will be understood that withcurrent arrangements the layer 4 connections are broken because packetsbeing routed back from the Gi are sent to the wrong MIOP.

The Architecture presented thus far is able to optimize Data traffic inthe UMTS network but it is unable to provide Mobility Management forsuch traffic.

It is therefore an object of the present invention to provide a means toenable mobility management in a system supporting the MIOPoptimizations.

As indicated above, it is an aim of the present invention to solve theproblem of how to provide Mobility Management with MIOP optimization. Inthe following description of embodiments of the invention, in order tosolve this problem, one or more of the following three specificadditions to the MIOP design are made. Separately or together theseadditions allow traffic to a UE to benefit from MIOP optimization whilstthe UE moves from cell tower to cell tower.

1. Cascaded, Synchronised NAT:

In a practical realization, another NAT 12 is introduced at the RNC 13.This NAT 12 is managed together with the NAT 10 in the MIOP@NodeB duringthe mobility management scheme to route IP packets to the appropriateMIOP@NodeB, preserving TCP connections to the UE 20.

2. Traffic Forwarding:

MIOP@NodeBs are able to forward traffic between cell towers. As will bedescribed in further detail below, the resulting MIOP overlay network,by means of which data broken out of UMTS may be passed from one NodeBto another, is a key requirement to support MIOP mobility management.

3. TCP Connection Monitoring and Management:

MIOP Mobility events are preferentially achieved when there are noactive TCP connections proxied in the MIOP@NodeB, that is to say whenquiescence occurs at the first NodeB 19. Use may be made of the expectedrobustness of the connection, whereby it is expected that some packetsmay be dropped and re-sent: optionally, rather than waiting for aquiescence event to occur, such connections may be monitored and, ratherthan awaiting quiescence, aggressively terminated to facilitatemobility.

In order to illustrate the Mobility Management scheme, the operation ofthe system is presented as a set of steps in FIG. 2-FIG. 5 of theaccompanying drawings, starting with FIG. 2 which shows the UE 20wirelessly connected to a first BS (NodeB) 22. In a difference to theconventional arrangement, another NAT 24 is introduced at the RNC 25 andthe MIOP@RNC (RNC MIOP1 27), in addition to the NAT 26 at the NodeB 22.The IP address seen by the operator at the core level (FIG. 1) is anaddress in the RNC NAT's (24's) address pool (group of transferableaddresses available for assignment by a NAT). The RNC-NAT 24 mapsbetween this address and the address used by the NodeB-NAT 26.

Initially the UE 20 is attached to the network at NodeB 22: it can beseen that there are proxied TCP connections (proxy/proxy code) 28 sothere is a TCP state in the MIOP@NodeB (MIOP1) 30.

Referring next to FIG. 3, immediately after the UE 20 moves to anothercell tower represented by NodeB 32, the MIOP@NodeB (MIOP2 34) will beginbreaking out the data traffic for the UE 20. Because there are still TCPconnections between the UE 20 and the proxy 28 in MIOP@NodeB (MIOP1 30),data traffic is forwarded between MIOP1 30 and MIOP2 34, using a TCPproxy 28. This forwarding makes use of an overlay network 36 between thecell towers. This is provided either over the transport network betweenthe cell towers or by routing traffic via the core.

This re-routing may sound inefficient but, as will become apparent, theloading occurs only for a short time and only for UEs which experienceMobility with open, active proxied data connections—generally a smallpercentage of the population at any given time.

At this transitional stage, the MIOP@NodeB 30 monitors the TCPconnections for the UE 20. This monitoring may take place in the proxycode 28 itself or simply in a firewall-like layer in the IP stack whichmonitors the TCP protocol looking at the TCP flags.

In order to determine when to handover communications, the system is setto watch for a point where layer 4 TCP or other communicationscease—that is to say specifically enter the ‘Closed’ state, either as anaturally occurring hiatus in communications (referred to as quiescence)or through a forced termination in the original MIOP. This is thetrigger to move to the next step.

Turning now to FIG. 4, once it has been detected that Layer 4connections terminated in MIOP1 30 have quiesced (either naturally orthrough forced closure), the NAT 26 a in the NodeB 22 and at the NAT 24at the RNC1 25 are adjusted in a synchronised manner so that the UE 20is given a new IP address which is associated with MIOP@NodeB 34 andtraffic for this UE 20 is routed to MIOP 34 by the NAT 24 at the RNC.Specifically, the NAT@RNC 24 is adjusted so that the IP address seen bythe Gi for this UE 20 is maintained but it is mapped to the new IPaddress used by the NAT 26A in MIOP@NodeB 34 for this UE. Determiningthe quiescing of connections in MIOP1 30 can be done by keeping track ofthe connection status, either in the Operating System kernel, or byanother monitoring entity observing Layer 4 connection initiation andtermination flags.

Referencing FIG. 5, following natural or forced quiescence at MIOP1 30,the UE 20 is fully transferred to the new cell tower and may now begincreating new HTTP connections which are proxied 52 at MIOP@NodeB 34.

Going forward, the UE 20 may continue to move between cells covered bythe same RNC. In this case the handover process described above repeatsitself.

Where the UE moves to a cell covered by a different RNC, linked to theoriginal via the core network 17, there are several options that may beapplied. In a preferred arrangement, traffic can be forwarded from theoriginal RNC to a new RNC for the duration of the session. The networkbetween RNCs usually has a high bandwidth and low latency. In analternate arrangement, another NAT can be included further back in theGi (core; FIG. 1) to provide a further level of controlled redirectionto allow traffic from the Gi to be routed to a new RNC.

In terms of applicable hardware, FIG. 6 schematically represents thecomponents of a computer system suitable to embody aspects of thepresent invention, particularly the UE 20 and/or NodeB 22 (withassociated MIOP 30) excluding the wireless communications mechanismswhich may be conventional in form.

A first processor CPU 210 is coupled with random access memory RAM 212and read only memory ROM 214 by an address and data bus 216. As will beunderstood, CPU 210 may comprise a cluster of processors (nodes) withindividual processes and/or process threads being handled by individualnodes. Also connected to CPU 210 via the address and data bus 216 is atleast one further processor 242 (or cluster of nodes), which may be afurther CPU sharing tasks with the first CPU 210, or may be acoprocessor device supplementing the function of the CPU 210, handlingprocesses such as floating point arithmetic, signal processing andencryption. Each of these internal hardware devices 210, 212, 214, 242includes a respective interface (not shown) supporting connection to thebus 216. These interfaces are conventional in form and need not bedescribed in further detail.

Also connected to the CPU 210 via bus 216 are a number of externalhardware device interface stages (generally denoted 218). A firstinterface stage 220 supports the connection of external input/outputdevices, such as a mouse 222 and/or keyboard 224. A second interfacestage 226 supports the connection of external output devices such as adisplay screen 228 and/or audio output device 230, such as headphones orspeakers. A third interface stage 232 supports the connection toexternal data storage devices in the form of computer readable media:such external storage may as shown be provided by a removable optical ormagnetic disc 234 (accessed by a suitably configured disc reader 236).Alternatively or additionally the external storage may be in the form ofa solid state memory device such as an extension drive or memory stick.The external storage may contain a computer program, containing programsoftware code portions which, when run by the CPU 210 and/or furtherprocessor 242, perform the method according to the present invention.

A fourth interface stage 238 supports connection of the system to remotedevices or systems via wired or wireless networks 240, for example overa local area network LAN, via the internet, or another cloud computingsource.

In the foregoing, the applicants have described a method for moving OSIlayer 4 connections (such as TCP) seamlessly between wireless UserEquipments (UE) connected to a series of cell towers in applicationswhere the connection is extracted out of the underlying cellularprotocols at the towers. On detecting that a UE with a broken-outconnection has moved from a first to a second cell tower, traffic for anexisting connection from the UE is tunnelled between the firstcell-tower and the second cell-tower. On identifying a predeterminedtrigger event, which may be natural or forced quiescence at theterminal, an ongoing message exchange is migrated to the secondcell-tower on occurrence of the trigger event.

In accordance with a first aspect of the present invention there isprovided a method for moving Open Systems Interconnection (OSI) Layer 4protocol connections seamlessly between a User Equipment connectedwirelessly to a series of cell-towers in applications where said layer 4connection is extracted out of the underlying cellular protocols at saidtowers, comprising the steps of: detecting that said User Equipment witha broken-out layer 4 connection has moved from a first cell-tower to asecond cell-tower; tunneling traffic for an existing layer 4 connectionfrom the User Equipment between the first cell-tower and the secondcell-tower; identifying a predetermined trigger event; and migrating anongoing bidirectional flow of data packets from the User Equipment overto layer 4 connections maintained at the second cell-tower on occurrenceof the trigger event. In this way, the MIOP optimizations may bemaintained whilst mobility management is maintained. The OSI layer 4model communications may suitably comprise the known transport controlprotocol (TCP) or may comprise UDP or SCTP.

The step of tunnelling traffic may comprise setting up a tunnellingprotocol between two base stations and redirecting the traffic into atunnel. As will be recognized, tunnelling is not preferred as apermanent strategy as it is wont to add latency which, if accumulatedthrough a sequence of handovers from cell tower to cell tower would leadto an unwieldy chain. Furthermore, constraints may be encountered as theavailable bandwidth for a tunnel link may be restricted. In one such ascenario, following the trigger event, to implement the tunnelling, thefirst and second NAT means may be adjusted in synchronism, suitably toprovide the User Equipment with a new IP address associated with thesecond cell-tower, with tunnelling of traffic optimally using an overlaynetwork defined between the cell towers.

Handover is preferentially handled when there is no traffic(quiescence), so the predetermined trigger event may be the detection ofthere being no active layer 4 connections proxied at the firstcell-tower (that is to say quiescence at the first cell-tower). Managinga handover whilst there are active TCP or other layer 4 connectionsproxied in the cell tower would result in these connections beingbroken. Such a break would be seen by the UE and would usually impactthe user, such as by stopping the play of a video, ending a video chatsession, or terminating the load of a web page.

In an alternative strategy, the potential impacts on the user may bedeemed acceptable, and the predetermined trigger event may be the forcedtermination of any active TCP connections proxied at the first celltower.

Also in accordance with the present invention there is provided acommunications apparatus comprising: a plurality of interconnectedcell-towers wirelessly connectable to a portable User Equipment, eachsuch cell-tower being operable to extract a transport control protocol(TCP) connection from an underlying cellular protocol, the apparatusfurther comprising control means operable to: detect that a UserEquipment with a broken-out TCP connection has moved from wirelessconnection with a first cell-tower to wireless connection with a secondcell-tower; tunnel traffic for an existing TCP connection from the UserEquipment between the first cell-tower and the second cell-tower;identify a predetermined trigger event; and migrate an applicationrequest from the User Equipment over to TCP connections maintained atthe second cell-tower on occurrence of the trigger event.

The apparatus may further comprise first NAT means at the firstcell-tower and second NAT means at an RNC linking said first and secondcell-towers, the control means being coupled with the NAT means to routeIP packets to the appropriate cell-tower. In such a case, the controlmeans may be arranged to, following the trigger event, adjust the firstand second NAT means in synchronism, suitably to adjust the NAT means toprovide the User Equipment with a new IP address associated with thesecond cell-tower.

The control means may be configured to identify the predeterminedtrigger event through the detection of there being no active TCPconnections proxied at the first cell-tower, or it may be configured tocreate the predetermined trigger event by the forced termination of anyactive TCP connections proxied at the first cell-tower.

The invention further provides a computer program stored on anon-transitory computer readable medium and loadable into the internalmemory of a digital computer, comprising software code portions, whensaid program is run on a computer, for performing the method accordingto the invention and as described above.

The summary of the present invention does not recite all the necessaryfeatures of the invention, and sub-combinations of those features mayalso encompass the invention.

While embodiments of the present invention have been described above,the technical scope of the invention is not limited to the scope of theabove-described embodiments. It should be apparent to those skilled inthe art that various changes or improvements can be made to theembodiments. It is apparent from the description of the appended claimsthat implementations including such changes or improvements areencompassed in the technical scope of the invention.

The invention claimed is:
 1. A processor-implemented method for movingOpen Systems Interconnection (OSI) layer 4 connections seamlesslybetween a user equipment connected wirelessly to a series ofcell-towers, wherein the OSI layer 4 connections are moved from betweenthe user equipment and a first cell-tower from the series of cell-towersto the user equipment and a second cell-tower from the series ofcell-towers, wherein an OSI layer 4 connection is extracted out ofunderlying cellular protocols at said cell-towers, and wherein theprocessor-implemented method comprises: detecting that said userequipment has a broken-out layer 4 connection; detecting that said userequipment, with the broken-out layer 4 connection, has moved from thefirst cell-tower to the second cell-tower; tunnelling, by a processor,traffic for an existing layer 4 connection from the user equipmentbetween the first cell-tower and the second cell-tower, whereintunnelling traffic comprises first network address translation (NAT)means at the first cell-tower and second NAT means at a radio networkcontroller (RNC) linking said first and second cell-towers to route IPpackets to an appropriate cell-tower, wherein the second NAT means atthe RNC maps a first network address, used by data network servers forthe user equipment, to a second network address, in the first NAT means,that is used by the first and second cell-towers; identifying apredetermined trigger event, wherein the predetermined trigger event isa forced termination of any active layer 4 connections proxied at thefirst cell-tower, wherein proxied active layer 4 connections are proxiedin a web cache within a transparent forward proxy in the firstcell-tower; and in response to the predetermined trigger eventoccurring, migrating an ongoing bidirectional flow of data packets fromthe user equipment over to layer 4 connections maintained at the secondcell-tower.
 2. The processor-implemented method of claim 1, wherein onlytraffic for hypertext transfer protocol (HTTP) port 80 is proxied. 3.The processor-implemented method of claim 1, wherein, following thepredetermined trigger event, the first and second NAT means are adjustedin synchronism.
 4. The processor-implemented method of claim 3, whereinthe first and second NAT means are adjusted to provide the userequipment with a new IP address associated with the second cell-tower.5. The processor-implemented method of claim 1, wherein tunnellingtraffic uses an overlay network defined between the cell-towers.
 6. Theprocessor-implemented method of claim 1, wherein an OSI layer 4 protocolused in the OSI layer 4 connections comprises one of: TransmissionControl Protocol (TCP), User Datagram Protocol (UDP), and Stream ControlTransmission Protocol (SCTP).
 7. A communications apparatus comprising:a plurality of interconnected cell-towers wirelessly connectable to aportable user equipment, each such cell-tower being operable to extractan Open Systems Interconnection (OSI) layer 4 protocol connection froman underlying cellular protocol, the communications apparatus furthercomprising control means operable to: detect that said user equipmenthas a broken-out layer 4 connection; detect that said user equipment,with the broken-out layer 4 connection, has moved from a firstcell-tower to a second cell-tower; tunnel, by a processor, traffic foran existing layer 4 connection from the user equipment between the firstcell-tower and the second cell-tower, wherein tunnelling trafficcomprises first network address translation (NAT) means at the firstcell-tower and second NAT means at a radio network controller (RNC)linking said first and second cell-towers to route IP packets to anappropriate cell-tower, wherein the second NAT means at the RNC maps afirst network address, used by data network servers for the userequipment, to a second network address, in the first NAT means, that isused by the first and second cell-towers; identify a predeterminedtrigger event through a detection of there being no active layer 4connections proxied at the first cell-tower, wherein proxied activelayer 4 connections are proxied in a web cache within a transparentforward proxy in the first cell-tower; and in response to thepredetermined trigger event occurring, migrate an ongoing bidirectionalflow of data packets from the user equipment over to layer 4 connectionsmaintained at the second cell-tower.
 8. The communications apparatus ofclaim 7, further comprising first network address translation (NAT)means at the first cell-tower and second NAT means at a radio networkcontroller (RNC) linking said first and second cell-towers, the controlmeans being coupled with the first and second NAT means to route IPpackets to the appropriate cell-tower.
 9. The communications apparatusof claim 8, wherein the control means is arranged, following the triggerevent, to adjust the first and second NAT means in synchronism.
 10. Thecommunications apparatus of claim 9, wherein the control means arearranged to adjust the first and second NAT means to provide the userequipment with a new IP address associated with the second cell-tower.11. A computer program product for moving Open Systems Interconnection(OSI) layer 4 connections seamlessly between a user equipment connectedwirelessly to a series of cell-towers, wherein the OSI layer 4connections are moved from between the user equipment and a firstcell-tower from the series of cell-towers to the user equipment and asecond cell-tower from the series of cell-towers, wherein an OSI layer 4connection is extracted out of underlying cellular protocols at saidcell-towers, and wherein the computer program product comprises anon-transitory computer readable storage medium having program codeembodied therewith, the program code readable and executable by aprocessor to perform a method comprising: detecting that said userequipment has a broken-out layer 4 connection; detecting that said userequipment, with the broken-out layer 4 connection, has moved from thefirst cell-tower to the second cell-tower; tunnelling traffic for anexisting layer 4 connection from the user equipment between the firstcell-tower and the second cell-tower, wherein tunnelling trafficcomprises first network address translation (NAT) means at the firstcell-tower and second NAT means at a radio network controller (RNC)linking said first and second cell-towers to route IP packets to anappropriate cell-tower, wherein the second NAT means at the RNC maps afirst network address, used by data network servers for the userequipment, to a second network address, in the first NAT means, that isused by the first and second cell-towers; identifying a predeterminedtrigger event, wherein the predetermined trigger event is a detection ofthere being no active layer 4 connections proxied at the firstcell-tower, wherein proxied active layer 4 connections are proxied in aweb cache within a transparent forward proxy in the first cell-tower;and in response to the predetermined trigger event occurring, migratingan ongoing bidirectional flow of data packets from the user equipmentover to layer 4 connections maintained at the second cell-tower.
 12. Thecomputer program product of claim 11, wherein tunnelling trafficcomprises managing first network address translation (NAT) means at thefirst cell-tower and second NAT means at a radio network controller(RNC) linking said first and second cell-towers to route IP packets toan appropriate cell-tower.
 13. The computer program product of claim 11,wherein the step of tunnelling traffic uses an overlay network definedbetween the cell-towers.
 14. The computer program product of claim 12,wherein, following the trigger event, the first and second NAT means areadjusted in synchronism.
 15. The computer program product of claim 14,wherein the first and second NAT means are adjusted to provide the userequipment with a new IP address associated with the second cell-tower.